//package net.jsoft.pms.service.oracle.problems.impl;
//
//import java.io.InputStream;
//import java.text.SimpleDateFormat;
//import java.util.ArrayList;
//import java.util.Collections;
//import java.util.Date;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
//import net.jsoft.pms.mapper.problem.ProblemMapper;
//import net.jsoft.pms.service.oracle.problems.IProblemsService;
//import net.jsoft.pms.util.ReadExcelUtils;
//import net.jsoft.pms.vo.problems.ProblemTaskBean;
//
///**
// * 问题管理平台Dao
// *
// * @author John
// * @Date 2017-07-31 22:53:56
// */
//@Service
//public class ProblemsServiceImpl implements IProblemsService
//{
//    protected final static Logger logger = LoggerFactory.getLogger(ProblemsServiceImpl.class);
//    private ReadExcelUtils excelReader = null;
//    @Autowired
//    private ProblemMapper mapper;
//
//    @Override
//    public List<ProblemTaskBean> read(String path, int sheetNum)
//    {
//        excelReader = new ReadExcelUtils(path);
//        List<ProblemTaskBean> problemTaskBeans = read(0);
//        return problemTaskBeans;
//    }
//
//    private List<ProblemTaskBean> read(int sheetNum)
//    {
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        Map<Integer, Map<Integer, Object>> map = null;
//        List<ProblemTaskBean> problemTaskBeans = null;
//        try
//        {
//            map = excelReader.readExcelContent(sheetNum);
//            problemTaskBeans = new ArrayList<ProblemTaskBean>();
//            ProblemTaskBean p = null;
//            for (int i = 1; i <= map.size(); i++)
//            {
//                p = new ProblemTaskBean();
//                Map<Integer, Object> m = map.get(i);
//                p.setId(m.get(0) + "");
//                p.setLevel(m.get(5) + "");
//                p.setTitle(((String) m.get(9)).replaceAll("\n", "").replaceAll("\r", "").replaceAll(" ", ""));
//                p.setContent(((String) m.get(10)).replaceAll("\n", "").replaceAll("\r", "").replaceAll(" ", ""));
//                p.setOptPerson(m.get(15) + "");
//                p.setGroupName(m.get(14) + "");
//                p.setInsertDate(sdf.parse(m.get(18) + ""));
//                problemTaskBeans.add(p);
//            }
//            Collections.sort(problemTaskBeans);
//        }
//        catch (Exception e)
//        {
//            e.printStackTrace();
//        }
//        return problemTaskBeans;
//    }
//
//    @Override
//    public List<ProblemTaskBean> dealed(List<ProblemTaskBean> lastWeek, List<ProblemTaskBean> thisWeek)
//    {
//        // 本周完成
//        List<ProblemTaskBean> dealed = new ArrayList<ProblemTaskBean>();
//        dealed = new ArrayList<ProblemTaskBean>();
//        dealed.addAll(lastWeek);
//        dealed.removeAll(thisWeek);
//        return dealed;
//    }
//
//    @Override
//    public List<ProblemTaskBean> thisWeekNew(List<ProblemTaskBean> lastWeek, List<ProblemTaskBean> thisWeek)
//    {
//        List<ProblemTaskBean> thisWeekNew = new ArrayList<ProblemTaskBean>();
//        // 本周新增
//        thisWeekNew = new ArrayList<ProblemTaskBean>();
//        thisWeekNew.addAll(thisWeek);
//        thisWeekNew.removeAll(lastWeek);
//        return thisWeekNew;
//    }
//
//    @Override
//    public Map<String, List<ProblemTaskBean>> group(List<ProblemTaskBean> thisWeek)
//    {
//        Map<String, List<ProblemTaskBean>> map = new HashMap<String, List<ProblemTaskBean>>();
//        for (ProblemTaskBean p : thisWeek)
//        {
//            if (map.containsKey(p.getGroupName()))
//            {
//                List<ProblemTaskBean> newList = map.get(p.getGroupName());
//                newList.add(p);
//                map.put(p.getGroupName(), newList);
//            }
//            else
//            {
//                List<ProblemTaskBean> newList = new ArrayList<ProblemTaskBean>();
//                newList.add(p);
//                map.put(p.getGroupName(), newList);
//            }
//        }
//        return map;
//    }
//
//    @Override
//    public void batchImport(InputStream inputStream) throws Exception
//    {
//        excelReader = new ReadExcelUtils(inputStream, ReadExcelUtils.EXCEL2007);
//        List<ProblemTaskBean> problemTaskBeans = read(0);
//        mapper.insertProblems(problemTaskBeans, new Date().getTime());
//    }
//
//    @Override
//    public Map<String, List<ProblemTaskBean>> getProblems()
//    {
//        Map<String, List<ProblemTaskBean>> map = new HashMap<String, List<ProblemTaskBean>>();
//        List<ProblemTaskBean> list = mapper.getProlemsAtLastTwoTimes();
//        List<ProblemTaskBean> lastWeek = new ArrayList<ProblemTaskBean>();
//        List<ProblemTaskBean> thisWeek = new ArrayList<ProblemTaskBean>();
//        long version = 0;
//        for (ProblemTaskBean p : list)
//        {
//            if (version == 0)
//            {
//                version = p.getVersions();
//                lastWeek.add(p);
//                continue;
//            }
//            if (version == p.getVersions())
//            {
//                lastWeek.add(p);
//            }
//            else
//            {
//                thisWeek.add(p);
//            }
//        }
//        list.removeAll(lastWeek);
//        map.put("lastWeek", lastWeek);
//        map.put("thisWeek", thisWeek);
//        return map;
//    }
//
//}
